import unittest

from framework.AW.STrak import strak
from framework.AW.STrak.process import *
from framework.AW.STrak.strak import *
from framework.AW.STrak.station import *


def simulate_signal_change():
    try:
        """
        用例1：模拟完成信号变化
        仿真打开，初始化3辆小车，间距300mm
        配置：上海S3样机（环线）/S3样机配置（3个小车）
        1.重新启动 包含以下动作 ： 急停初始化复位(使能)启动  
        2.工序2的模拟信号置0，小车停在工位2 拥堵小车数：小车数-1
        3.工序2的模拟信号置1，小车完成加工，前往工位1 拥堵小车数：0
        """
        restart()
        simulate_signal_off(2)
        assert jam_car_count() == car_num() - 1, "[工序模拟完成信号相关错误: 拥堵小车数量不正确]"
        simulate_signal_on(2)
        assert jam_car_count() == 0, "[工序模拟完成信号相关错误: 拥堵小车数量不正确]"
    except Exception as e:
        print(f"测试过程出现异常:{e}")
        raise


class SimulateSignalChange(unittest.TestCase):
    @staticmethod
    def testOn():
        simulate_signal_change()